The concepts involved in the present invention relate to a new approach to the manufacture, sale and distribution of wireless communication terminals, such as digital cellular telephones, and the special functions and features for such devices.
Mobile communication is becoming increasingly popular, particularly for voice-grade telephone services, and more recently for data communication services. As a result, there is an increasing demand for development of communication terminals with ever more sophisticated features. Even a low-end model of a digital cellular telephone will include caller identification capability, a large speed-dial list, called and calling party phone number lists, etc.
At present, manufacturers build the wireless terminal devices with a complete set of hardware and read-only software to support a full set of desired features. Development of a new wireless telephone currently takes about 18 months, from initial feature specification to first street-sale. Costs of development of new models of cellular telephones, with ever more sophisticated features are high and continue to spiral upward.
At the same time, driven by a long decline in consumer electronics prices, the price that the market will bear for such telephones has remained steady or even declined, in spite of the high demand. As a result, the margin on each telephone or terminal unit made and sold by a manufacturer is extremely small, sometimes only a few dollars a unit. The resellers, typically cellular carriers or their agents, sell the terminal units at a loss, as a form of subsidy or discount, to encourage customers to subscribe to and use their cellular network services.
Some capability exists today to program service-related information into digital cellular telephones. However, this capability has been limited to data needed to provision a new unit or to provision an existing unit for a new service. During initial provisioning, for example, the carrier programs in the mobile identification number assigned to the unit, a home system identifier, and a preferred roaming list containing the identifiers of systems providing financially favorable roaming services. Until recently, such programming involved a local physical connection to the unit and required a technician. More and more, the carriers are deploying various systems to enable at least some of the requisite programming data to be downloaded to the units via the wireless network.
For example, commonly assigned U.S. Pat. No. 5,613,204 to Haberman et al. teaches downloading a list of system identifiers (SIDs) over-the-air into a mobile station. The downloaded list is used to control system selection during roaming. The downloaded information may include information about features available through the identified systems. U.S. Pat. No. 5,950,130 to Coursey teaches downloading a system access list for roaming control as part of an over-the-air service activation process.
Essentially, these downloading techniques turn on or off available features by setting bits to toggle features on/off or by loading necessary control data, such as the list of system identifiers used to control system selection by the handset during roaming. The carrier may download new or updated data, for example, a new version of the preferred roaming list, from time to time.
The existing programming and downloading techniques do enable the carrier to modify some operations of the handset, to turn services on or off and/or to update necessary data. However, the feature functionality desired must already be present in the unit as manufactured and sold to the user. If the user desires a new feature that an existing unit does not support, the user still must discard the old unit and purchase a new unit that can support the desired feature.
The inventive concepts alleviate the above noted problems in development and distribution of wireless terminal devices with new features. Essentially, the manufacturer will develop and sell a terminal device having predetermined communication capabilities and a minimal operation capability. However, the unit will include a substantial memory for plug-in feature programming. After sale to an end user, the end user selects a desired feature or set of features and contacts a service provider. The provider may be the carrier operating the network that the user subscribes to, the manufacturer of the terminal unit or an independent third party. The user obtains software programming from the service provider, which is then loaded into the memory of the terminal device.
The downloaded software is essentially a plug-in software module, written to the application program interface specification of the core software of the terminal device. When loaded into memory, the core software together with the plug-in module implements the desired feature(s). Features can be added, upgraded or replaced virtually at any time by downloading new feature modules into the memory to add to or over-write the software for features previously downloaded into the terminal.
The manufacturer or other parties can upgrade units simply by writing new software. The manufacturer can sell the units for a set price, which may be small. However, the later sales of the features and/or sales of feature upgrades provide an additional revenue stream.
From the end users"" perspective, they can obtain exactly the set of features that they desire. Also, there can be competition for writing the best software, for at least some features. For example, if a third party offers a better voice-recognition dialer module than that available from the carrier or the manufacturer, the user may opt to buy that software from the third party.
The downloading of the software into the wireless terminal device may utilize a variety of available technologies. For example, a data port on the terminal may be temporarily connected to a computer or to a disk or card reader and the software plug-in modules transferred into memory through the port. Preferably, the software downloading utilizes an over-the-air transfer.
The minimal capability of the base-line terminal device enables the device to establish a wireless link through the carrier""s network to a data system. For network-related features and/or initial provisioning, this data system would be a private system operated by the carrier. The data system would send at least one software module containing the executable program necessary to allow the particular type of terminal to implement one or more features selected by the individual user.
In a preferred embodiment, the base-line functionality of the terminal implements a wireless web browser. The initial data communication would provide web pages for display on the terminal and allow the user to select packages of features and/or individual features from those available from the carrier. Upon selection and agreement to payment, a server would transmit the module(s) for the selected features through the network and over-the-air to the user""s wireless terminal device. The terminal would check the integrity of the received module and load the software into flash memory. Once loaded, the terminal would execute the software, as needed to allow the user access to the selected service features. The user could initiate similar procedures to obtain other feature modules later, from the carrier directly, from the manufacturer or from a third party.
Thus, certain aspects of invention relate to methods for distributing and programming one or more wireless communication terminals. The methodology entails obtaining one or more programmable wireless communication terminals. Each terminal has a predetermined minimal set of operational capabilities. Each terminal includes a program memory for storing one or more feature modules and a processor for executing one or more of the feature modules to control the operational capabilities of the terminal. A substantial portion of the program memory is initially blank. In the preferred embodiments, the methodology also involves establishing a database of plug-in program modules. A plug-in program module comprises program code executable by the processor to enable implementation of a predetermined one or more communication features by a terminal.
When a terminal is distributed to a subscriber of communication services offered by a wireless network, the subscriber selects one or more features from those available through the network. The methodology then involves retrieving an executable program module corresponding to the selected feature from the database. That module is downloaded into the program memory in the subscriber""s wireless communication terminal, to enable that terminal to implement the selected feature.
Other aspects of the invention relate to a network providing features based on the inventive downloading of feature modules and to the system providing the database and module transmissions to the handsets.
A further aspect of the invention relates to a unique implementation of the wireless terminal device itself. The terminal includes a wireless transceiver for communication via a public wireless communication system and a programmable controller. The terminal provides a user interface, coupled to the programmable controller, to enable a user to activate a terminal feature. A memory coupled to the controller includes two sections. The first section of memory stores a kernel of software necessary to implement a base-line functionality of the terminal device. The functionality implemented by the software kernel supports the user interface and is sufficient to support downloading of software into the terminal device. Also, the kernel implements a software interface. The second section of memory is writeable. This section is for receiving and storing at least one downloaded feature module program, which is executable by the programmable controller through the software interface. Execution of the module program would serve to implement one or more terminal features upon activation via the user interface.
A further aspect of invention relates to the unique software. A software product, in accord with this aspect, includes at least one machine readable medium and programming code, carried by the medium. A computer readable medium, as used herein, may be any physical element or carrier wave, which can bear instructions or code for performing a sequence of steps in a machine readable form. Examples of physical forms of such media include floppy disks, flexible disks, hard disks, magnetic tape, any other magnetic medium, a CD-ROM, any other optical medium, a RAM, a ROM, a PROM, an EPROM, a FLASH-EPROM, any other memory chip or cartridge, as well as media bearing the software in a scannable format. A carrier wave medium is any type of signal that may carry digital information representative of the instructions or code for performing the sequence of steps. Such a carrier wave may be received via a wireline or fiber-optic network, via a modem, or as a radio-frequency or infrared signal, or any other type of signal which a computer or the like may receive and decode.
In the disclosed embodiments, various software products reside on disks or in memory of network server computers, are transported via one or more data networks, as well as through the switching center, trunks and base stations of the wireless carrier""s network, and over the air link to the terminal devices. The software also resides in program memory, typically a flash memory, within the terminal devices.
In the case of the software invention, the programming code on any such medium comprises a plug-in terminal feature module for execution by a controller of a wireless communication terminal. The module is compatible with a predetermined program interface implemented by the wireless communication terminal, for example, through the core kernel of software included at time of manufacture. Execution of the module by the controller from a memory in the terminal causes the terminal to perform a sequence of steps for implementing a predetermined terminal feature through a mobile wireless communication network.